//                                                                                                  //
// File: BigIntegerTestResults.inc                                                                  //
//                                                                                                  //
// Test data for Velthuis.BigIntegers.pas, generated 10 Okt, 2018, 01:32:30                         //
//                                                                                                  //
// Do not modify the generated data in this file.  Modify the data in the generator source file.    //
// The source file for the generator is BigIntegerTestDataGenerator.java, in the Test subdirectory. //
//                                                                                                  //
// The freely available NetBeans IDE (V8.1) was used to compile and run this project.               //
// http://www.netbeans.org                                                                          //
//                                                                                                  //

type
  TTestResultInfo =
  (
    triOk,
    triDivideByZero,
    triArgumentNull,
    triArgumentRange,
    triFormat,
    triOverflow
  );

  TTestResult = record
    Info: TTestResultInfo;
    Val: string;
  end;

  TComparisonResult = (crGreater, crGreaterEqual, crEqual, crLessEqual, crLess, crNotEqual);

const
  ArgumentCount = 64;
  TestCount     = ArgumentCount;
  ShiftCount    = 40;
  DoubleCount   = 100;
  BitCount      = 5;

  Arguments: array[0..ArgumentCount - 1] of string =
  (
    '-158571582985157323973932567063203986538' + 
    '4960',                                      // 0
    '-180349654468097385635588541938837152071' + 
    '67',                                        // 1
    '-779879232593610263927748006161',           // 2
    '-82261793876695338192268955270',            // 3
    '-8840587743209014991486176890',             // 4
    '-499680576774082292410113726',              // 5
    '-7096499840976817344578600',                // 6
    '-74287305190053403856772',                  // 7
    '-13416290973509623768074',                  // 8
    '-8271324858169862655834',                   // 9
    '-1673271581108184934182',                   // 10
    '-100000',                                   // 11
    '-45808',                                    // 12
    '-10000',                                    // 13
    '-1000',                                     // 14
    '-100',                                      // 15
    '-56',                                       // 16
    '-10',                                       // 17
    '-7',                                        // 18
    '-2',                                        // 19
    '-1',                                        // 20
    '0',                                         // 21
    '1',                                         // 22
    '2',                                         // 23
    '7',                                         // 24
    '10',                                        // 25
    '100',                                       // 26
    '409',                                       // 27
    '818',                                       // 28
    '1000',                                      // 29
    '10000',                                     // 30
    '100000',                                    // 31
    '1000000',                                   // 32
    '4234575746049986044',                       // 33
    '5387241703157997895',                       // 34
    '9223372041149612032',                       // 35
    '172872415652910937156',                     // 36
    '977677435906606235647',                     // 37
    '1673271581108184934182',                    // 38
    '8271324858169862655834',                    // 39
    '13416290973509623768074',                   // 40
    '74287305190053403856772',                   // 41
    '85961827383486510530560',                   // 42
    '7096499840976817344578600',                 // 43
    '499680576774082292410113726',               // 44
    '1243478184157339114435077574',              // 45
    '8840587743209014991486176890',              // 46
    '19807040619342712359383728129',             // 47
    '63733365657267277460012361609',             // 48
    '82261793876695338192268955270',             // 49
    '779879232593610263927748006161',            // 50
    '113110558780721284166510605813',            // 51
    '4847586039315419829807005894255429',        // 52
    '90612345123875509091827560007100099',       // 53
    '85070591730234615847396907784232501249',     // 54
    '85070591730234615847396907784232501250',     // 55
    '680564693277057719623408366969033850880',     // 56
    '1803496544680973856355885419388371520716' + 
    '7',                                         // 57
    '1585715829851573239739325670632039865384' + 
    '960',                                       // 58
    '1234567890123456789012345678901234567890' + 
    '123456789012345678901234567890',            // 59
    '3435973836799999999999999999956631913100' + 
    '57982263970188796520233154296875',          // 60
    '3435973836799999999999999999956631913100' + 
    '5798226397018879652023315429687500000000' + 
    '00000',                                     // 61
    '10000000000000',                            // 62
    '1000000000000000000000000000000000000000' + 
    '000000000000000000'                         // 63
  );

  BitShifts: array[0..ShiftCount - 1] of Integer =
  (
       1,   2,   3,   4,   5,   6,   7,   8,
       9,  10,  11,  12,  13,  14,  15,  20,
      25,  30,  31,  32,  33,  35,  40,  50,
      60,  70,  71,  72,  73,  74,  75,  90,
     100, 110, 159, 160, 161, 162, 163, 164 
  );

  Doubles: array[0..DoubleCount - 1] of Double =
  (
    -6.00000000000000000e+20,
    -1.00000000000000000e+20,
    -3.51000000000000000,
    -3.50000000000000000,
    -3.49000000000000000,
    -2.51000000000000000,
    -2.50000000000000000,
    -2.49000000000000000,
    -2.00000000000000000e-100,
    0.00000000000000000,
    7.00000000000000000e-08,
    0.000100000000000000000,
    0.100000000000000000,
    0.200000000000000000,
    0.300000000000000000,
    0.400000000000000000,
    0.499999999999990000,
    0.500000000000000000,
    0.500000010000000000,
    0.700000000000000000,
    0.900000000000000000,
    1.00000000000000000,
    1.00000000000001000,
    1.10000000000000000,
    1.49999999999999000,
    1.50000000000000000,
    1.50000000000001000,
    1.99990000000000000,
    2.00000000000000000,
    2.49000000000000000,
    2.50000000000000000,
    2.51000000000000000,
    3.00000000000000000,
    3.49000000000000000,
    3.50000000000000000,
    3.51000000000000000,
    4.00000000000000000,
    4.10000000000000000,
    4.20000000000000000,
    4.40000000000000000,
    4.50000000000000000,
    4.60000000000000000,
    4.99990000000000000,
    5.00000000000000000,
    6.00000000000000000,
    7.00000000000000000,
    8.00000000000000000,
    9.00000000000000000,
    10.0000000000000000,
    15.0000000000000000,
    22.0000000000000000,
    44.0000000000000000,
    85.0000000000000000,
    128.000000000000000,
    256.000000000000000,
    256.100000000000000,
    256.500000000000000,
    256.700000000000000,
    300.000000000000000,
    876.543210987654000,
    645000.000000000000,
    1000000.50000000000,
    1000000.50000000000,
    1000000.50000000000,
    1048576.10000000000,
    1048576.50000000000,
    10000000000.0000000,
    14900000000.0000000,
    15000000000.0000000,
    15100000000.0000000,
    31415920000.0000000,
    100000000000.000000,
    1000000000000.00000,
    10000000000000.0000,
    100000000000000.000,
    1000000000000000.00,
    2000000000000000.00,
    4000000000000000.00,
    4900000000000000.00,
    8000000000000000.00,
    10000000000000000.0,
    20000000000000000.0,
    40000000000000000.0,
    50000000000000000.0,
    100000000000000000,
    1.00000000000000000e+18,
    1.00000000000000000e+19,
    1.23456789012346000e+19,
    1.00000000000000000e+20,
    100000000000001.000,
    100000000000002.000,
    100000000000004.000,
    100000000000008.000,
    100000000000016.000,
    100000000000032.000,
    100000000000064.000,
    100000000000128.000,
    100000000000256.000,
    100000000000512.000,
    1.00000000000000000e+80
  );


  Bits: array[0..BitCount - 1] of Integer =
  (
    1, 4, 10, 100, 1000
  );

